const express = require("express")
const fs = require("fs/promises")
const path = require("path")
let MONSTER_ARR = require("../data/mons.json")


// 创建路由对象
const router = express.Router()


router.get("/west", (req,res)=> {
    // req.setEncoding("<h1>欢迎</h1>")
    // render 用来渲染模板引擎 并将其返回给浏览器
    console.log(MONSTER_ARR, );
    
    res.render("west", {
        mons: MONSTER_ARR
    })
})

//新增
router.post("/add-mons",(req, res) => {
    console.log(req.body)
    // id
    const num = MONSTER_ARR.length
    const id = num > 0 ? MONSTER_ARR[num-1].id+1 : 1

    const newMons = {
        id,
        ...req.body
        // name: req.body.name
    }
    // 将新数据添加到数组
    MONSTER_ARR.push(newMons)
    // 重新写入json文件
    fs.writeFile(path.resolve(__dirname, "../data/mons.json"),JSON.stringify(MONSTER_ARR))
    .then( () => {
        // 重定向 告诉浏览器  向/west路由重新访问一次
        res.redirect("/west")
    })
})

// 删除
router.get("/del", (req,res) => {
    console.log(req.query)
    // 找出对应的id数据
    MONSTER_ARR = MONSTER_ARR.filter(item => item.id !=req.query.id)
    // console.log(MONSTER_ARR);
    fs.writeFile(path.resolve(__dirname,"../data/mons.json"),JSON.stringify(MONSTER_ARR))
    .then(() => {
        // 重定向 告诉浏览器 向/west路由重新访问一次
        res.redirect("/west")
    })
})


// 跳转到修改页面
router.get("/updata", (req,res) => {
    // 过滤出对应数据
    let mons = MONSTER_ARR.find(item => item.id == req.query.id)
    res.render("updata", {
        user: mons
    })
})

// 提交修改
router.post("/updata-mons",(req,res) => {
    let mons = MONSTER_ARR.find(item => item.id == req.body.id)
    mons.name = req.body.name
    mons.age = req.body.age
    mons.sex = req.body.sex
    mons.address = req.body.address

    fs.writeFile(path.resolve(__dirname,"../data/mons.json"), JSON.stringify(MONSTER_ARR))
    .then(() => {
        res.redirect("/west")
    })

})




// router暴露出去
module.exports = router
